iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
自我挑戰組

JavaScript101與人生幹話系列 第 21

JavaScript101與人生幹話-JS 常見縮寫

  • 分享至 

  • xImage
  •  

JS 常見縮寫

物件下的縮寫

1.物件內函式的縮寫

原始物件內函式的寫法

const obj = {
  name: "小明",
  fn: function () {
    return this.name;
  }
};
console.log(obj.fn())//"小明"

縮寫後

1.1把: fnuction都去除

const obj = {
  name: "小明",
  fn () {
    return this.name;
  }
};
console.log(obj.fn())//"小明"

1.2箭頭函式,但是會出事喔!

const obj = {
  name:"小明",
  fn:()=>this.name
}
console.log(obj.fn());//undifined

在使用箭頭函式的時候要注意"this",因為箭頭函式沒有自己的this,所以this會指向window,window中沒有name:"小明"所以會產生undifined
箭頭函式this的指向差異 (見範例7.)

2.物件字面值

2.1函式

原始物件內函式的寫法

const obj = {
  name: "小明",
  fn: function () {
    return this.name;
  }
};
console.log(obj.fn())//"小明"

縮寫後
把: fnuction都去除

const obj = {
  name: "小明",
  fn () {
    return this.name;
  }
};
console.log(obj.fn())//"小明"

2.2變數

原始寫法

const person = {
 name: "小明",
};

const people = {
   person:person
}

console.log(people)//{name: "小明"}

縮寫後

const person = {
 name: "小明",
};
const people = {
   person
}
console.log(people)//{name: "小明"}

屬性(person這個物件內的屬性)與變數相同的時候只要寫一次就行。

3.展開

3.1 陣列的展開

原始的陣列展開

const a = [1,2,3];
const b = [4,5,6];
const c = a.concat(b);
console.log(c)//[1,2,3,4,5,6]

縮寫的陣列展開

const a = [1,2,3];
const b = [4,5,6];
const c = [...a,...b];
console.log(c)//[1,2,3,4,5,6]

3.2 物件的展開

const obj = {
fna(){console.log('a')},
fnb(){console.log('b')}
};

const newObj = {
...obj,
fnc(){console.loc('c')}
};
console.log(newObj)//{fna:f,fnb:f,fnc:f}

3.3 轉成純陣列

<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
const list = document.querySelectorAll('li')
console.log(list)//[object NodeList] (3)["<li/>","<li/>","<li/>"]會得到類陣列,無法使用全部陣列的功能
const newlist = [...list]
//使用...轉化為純陣列
// [object Array] (3)
console.log(newlist)[<li>1</li>,<li>2</li>,<li>3</li>]

4.預設值

原始預設值寫法

function plus(a,b){
if(!b){b=2}
//如果b沒有傳入參數預設值為2
return  a+b
}
console.log(plus(1))///3

縮寫後

function plus(a,b=2){
return  a+b
}
console.log(plus(1))///3

人生幹話-生技公司依然會偷雞摸狗

要修正文件成等比級數的問題有兩種方法,1.結束產品的生命週期,就是註銷醫材許可證,這樣子就不用每年更新文件,但這是不可能的因為醫材許可證的申請需要花2-3個月的間,所以這接即便沒有再生產的醫材也會被借屍還魂,用一個新開發的醫材文件寫成是舊醫材的改版,只要遞交修改申請就可以時間可以節省1-2個月,自然舊不可以註銷,2.把功能相關的醫材做成類別把風險報告模組化,不過這個難度也是很大,明明同種產品但個別的功能已經是不同類型的產品,這就是公司所提供的"客製化",基本上可以想成是把三輪車改造成滑板車,一樣都是車可是本質上已經是不同的東西了。


上一篇
JavaScript101與人生幹話 - JavsScript的強制轉型與轉換型別-邏輯運算子==與!=的轉型
下一篇
JavaScript101與人生幹話-this的範例
系列文
JavaScript101與人生幹話30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言